1. Field
Embodiments of the present invention relate to networks and, in particular, to traffic control in networks.
2. Discussion of Related Art
Networks enable computers and other devices to communicate with each other. Devices commonly communicate with each other by passing packets of information among themselves. A packet typically includes a payload and a header. The header usually includes the address of the destination device and the payload includes the information (data, video, audio, etc.) for the device.
When a packet arrives at an input port on a connectivity device, such as a switch, a router, a bridge, etc., the connectivity device looks in one or more look-up tables to determine, based on the address in the packet, the destination device (e.g., printer, computer, application) and which output port the packet should exit to reach the destination device. Sometimes a packet indicates that it is intended for all destinations (e.g., broadcast packet). If the packet is to be broadcast, the connectivity device sends the packet to the all output ports. Sometimes a packet indicates that it is intended for several but not all destinations (e.g., multicast packet). If the packet is to be multicast, the connectivity device sends the packet to the designated output ports. Sometimes a packet arrives at an input port that has an address that is not in the connectivity device's look-up table (e.g., “destination unknown” packet). In this situation, the connectivity device sends the packet to all of its output ports (i.e., broadcasts the packet).
Sometimes there is a sudden increase in the number of packets (i.e., traffic) in a network. Such a sudden increase may be called a “storm,” and storm traffic often consists of destination unknown, multicast, and/or broadcast packets. When storms occur, destination unknown, multicast, and/or broadcast packets tend to multiply at each node in the network and their effect on the network can increase exponentially to the point of causing congestion. As a result, overall network performance may be degraded and devices may slow or even stop working altogether. Other useful packets get dropped because the network is not able to handle the congestion. A balance must be struck, therefore, so that a connectivity device can allow some storm traffic but not to the significant detriment of other useful packets.
A common mechanism to resolve a storm is to allow only a percentage of all incoming traffic to be storm traffic based on the port speed. To illustrate, suppose the port speed is 10 Mbps and the user programs an allowed percentage of storm traffic of ten percent. In this instance, storm traffic will be limited to 1 Mbps in each user-specified unit time interval. If the incoming storm traffic exceeds the rate of 1 Mbps within each time interval, the input port refuses to allow any more incoming storm traffic to pass. When the unit time interval has elapsed, the input port resumes allowing storm traffic until the allowed percentage of traffic bandwidth is again exceeded within the unit time interval.
Many connectivity devices can operate at several different speeds and the speed is determined by the speed of the link to which the connectivity device is attached. Thus, when upstream/downstream link speed is 10 Mbps the connectivity device port that is attached to the link operates at 10 Mbps. When the incoming link speed changes to 100 Mbps the connectivity device port speed also changes to 100 Mbps.
In the context of storm control, a uniform port speed is assumed when specifying the percentage of storm traffic that is to be allowed per unit time interval. Therefore, if the input port on the connectivity device changes speed in response to a change in link speed, for example, as is the case with variable speed connectivity devices, the original traffic parameters are no longer accurate. The actual percentage storm traffic allowed through the connectivity device is not the same as the allowed percentage programmed by the user. For example, when the connectivity device port speed changes to 100 Mbps, the connectivity device still allows a traffic rate of only 1 Mbps in each unit time interval, even though the 1 Mbps rate of storm traffic is only one percent of 100 Mbps rather than the ten percent programmed by the user.